//package com.xspace.android.xafcommon.util;
//
//import android.content.ContentResolver;
//import android.content.ContentUris;
//import android.content.ContentValues;
//import android.content.Context;
//import android.database.Cursor;
//import android.net.Uri;
//import android.os.Build;
//import android.provider.BaseColumns;
//import android.telephony.SmsManager;
//import android.util.Log;
//
//import com.xspace.android.xafcommon.been.MessageBean;
//
//import java.util.ArrayList;
//import java.util.HashSet;
//import java.util.List;
//import java.util.Set;
//import java.util.Vector;
//
///**
// * 短彩工具类
// * <p>
// * create time 2013-12-16
// * <p>
// * version 1.0.0.0
// * <p>
// * class SMSMMSUtils.java
// *
// * @author mawen
// */
//public class SMSMMSUtils {
//    /**
//     * 根据短信id删除短信
//     *
//     * @return 删除数量
//     */
//    public static void delSMSByID(Context context, String _id) {
//        context.getContentResolver().delete(Uri.withAppendedPath(Uri.parse("content://sms"), _id), null, null);
//    }
//
//    /**
//     * 根据彩信id删除彩信
//     *
//     * @param context
//     * @param _id
//     */
//    public static void deleteMMSByID(final Context context, final String _id) {
//        Cursor cursor = context.getContentResolver().query(Uri.parse("content://mms/part"), null, "mid='" + _id + "'",
//                null, null);
//        int partID = 0;
//        if (cursor != null) {
//            if (cursor.moveToFirst())
//                do {
//                    partID = cursor.getInt(cursor.getColumnIndex("_id"));
//                    Uri partURI = Uri.parse("content://mms/part/");
//                    context.getContentResolver().delete(Uri.withAppendedPath(partURI, "" + partID), null,
//                            new String[]{});
//                } while (cursor.moveToNext());
//            cursor.close();
//        }
//        context.getContentResolver().delete(Uri.withAppendedPath(Uri.parse("content://mms/part"), _id), null,
//                new String[]{});
//        context.getContentResolver()
//                .delete(Uri.parse("content://mms-sms/conversations"), "_id=" + _id, new String[]{});
//    }
//
//    /**
//     * @param @param context
//     * @param @param threadid
//     * @return
//     * @throws
//     * @Description: 获取所有短彩信
//     */
//    public static List<MessageBean> querySMSMMS(final Context context, final long threadid, String orderby) {
//        Uri uri = Uri.parse("content://mms-sms/conversations");
//        if (threadid != -1) {
//            uri = ContentUris.withAppendedId(Uri.parse("content://mms-sms/conversations"), threadid);
//        } else {
//            return new ArrayList<MessageBean>();
//        }
//        List<MessageBean> mMessageBeanList = new ArrayList<MessageBean>();
//        try {
//            Cursor cursor = context.getContentResolver().query(uri, Telephony.MmsSms.PROJECTION, null, null, orderby);
//            if (cursor != null) {
//                if (cursor.moveToFirst()) {
//                    do {
//                        MessageBean d = buildMessageBean(cursor);
//                        mMessageBeanList.add(d);
//                    } while (cursor.moveToNext());
//                }
//            }
//        } catch (Exception e) {
//            mMessageBeanList = new ArrayList<MessageBean>();
//        }
//
//        return mMessageBeanList;
//    }
//
//    private static MessageBean buildMessageBean(Cursor cursor) {
//        String type = cursor.getString(cursor.getColumnIndex("transport_type"));
//        Long timeMillis = Long.parseLong(StringUtils.fill(cursor.getString(cursor.getColumnIndex("date")), 13, false,
//                "0"));
//        String date = DateUtils.timeMillisToDateTimeString(timeMillis, DateUtils.FORMAT_1);
//        String body = "";
//        int layoutId = MessageBean.LAYOUT_INBOX;
//        int smsmms_type = MessageBean.TYPE_SMS;
//        int read = MessageBean.READ_READ;
//        String address = cursor.getString(cursor.getColumnIndex("address"));
//        String threadID = cursor.getString(cursor.getColumnIndex("thread_id"));
//        read = cursor.getInt(cursor.getColumnIndex("read"));
//        int _id = cursor.getInt(cursor.getColumnIndex("_id"));
//        if (type.equals("sms")) {
//            body = cursor.getString(cursor.getColumnIndex("body"));
//            layoutId = cursor.getInt(cursor.getColumnIndex("type"));
//            smsmms_type = MessageBean.TYPE_SMS;
//        } else if (type.equals("mms")) {
//            try {
//                String strCode = "iso8859-1";
//                if ("SCH-N719".equals(Build.MODEL)) {
//                    strCode = "utf-8";
//                }
//                body = new String(cursor.getString(cursor.getColumnIndex("sub")).getBytes(strCode), "utf-8");
//                if (StringUtils.isEmpty(body)) {
//                    body = "无主题";
//                }
//            } catch (Exception e) {
//                body = "无主题";
//            }
//            layoutId = ((cursor.getInt(cursor.getColumnIndex("msg_box")) == 1) ? 1 : 0);
//            smsmms_type = MessageBean.TYPE_MMS;
//        }
//        MessageBean d = new MessageBean(address, date, body, layoutId, threadID, _id, smsmms_type, read);
//        return d;
//    }
//
//    /**
//     * @param @param context
//     * @param @param address
//     * @return
//     * @throws
//     * @Description: 通过地址获取所有相关短彩信
//     */
//    public static List<MessageBean> queryMMSSMSByAddress(final Context context, final String address,
//                                                         final String orderby) {
//        long threadID = getOrCreateThreadId(context, address);
//        return querySMSMMS(context, threadID, orderby);
//    }
//
//    /**
//     * 发送短信
//     *
//     * @param context
//     * @param destinationAddress
//     * @param smsContent
//     */
//    public static void sendSMSWithSave(Context context, String destinationAddress, String smsContent) {
//        saveSMS(context, destinationAddress, smsContent, false);
//        sendSms(destinationAddress, smsContent);
//    }
//
//    /**
//     * 发送短信
//     *
//     * @param address
//     * @param smsContent
//     */
//    public static void sendSms(String address, String smsContent) {
//        ArrayList<String> list = SmsManager.getDefault().divideMessage(smsContent);
//        SmsManager.getDefault().sendMultipartTextMessage(address, null, list, null, null);
//    }
//
//    /**
//     * 保存信息到短信箱
//     *
//     * @param context
//     * @param address
//     * @param smsContent
//     * @param isSend
//     */
//    public static void saveSMS(Context context, String address, String smsContent, boolean isSend) {
//        ContentValues values = new ContentValues();
//        values.put("address", address);
//        values.put("body", smsContent);
//        values.put("type", (isSend ? 2 : 1));
//        values.put("status", (isSend ? 0 : -1));
//        values.put("read", 0);
//        try {
//            context.getContentResolver().insert(Uri.parse("content://sms/sent"), values);
//        } catch (Exception e) {
//            Log.e(SMSMMSUtils.class.getName(), e.getMessage(), e);
//        }
//    }
//
//    /**
//     * 根据thread_id更新未读短信成为已读
//     *
//     * @param mContext
//     * @param thread_id
//     */
//    public static void turnUNReadSMSToRead(Context mContext, String thread_id) {
//        ContentResolver cr = mContext.getContentResolver();
//        ContentValues cv = new ContentValues();
//        cv.put("read", "1");
//        cr.update(Uri.parse("content://sms"), cv, " thread_id=?", new String[]{thread_id});
//    }
//
//    /**
//     * 保存信息到短信箱
//     */
//    public static void saveMessageWithThreadID(Context context, String address, String smsContent, long threadID,
//                                               boolean isSend) {
//        ContentValues values = new ContentValues();
//        values.put("address", address);
//        values.put("body", smsContent);
//        values.put("type", (isSend ? 2 : 1));
//        values.put("status", (isSend ? 0 : -1));
//        values.put("read", 0);
//        if (threadID > 0) {
//            values.put("thread_id", threadID);
//        }
//        try {
//            context.getContentResolver().insert(Uri.parse("content://sms/sent"), values);
//        } catch (Exception e) {
//            Log.e(SMSMMSUtils.class.getName(), e.getMessage(), e);
//        }
//
//    }
//
//    /**
//     * 根据传入地址获取或创建新的thread_id
//     *
//     * @param context
//     * @param address
//     * @return
//     */
//    public static long getOrCreateThreadId(Context context, String address) {
//        Set<String> addresses = new HashSet<String>();
//        addresses.add(address);
//        return getOrCreateThreadId(context, addresses);
//    }
//
//    /**
//     * 根据传入地址列表获取或创建新的thread_id
//     *
//     * @param context
//     * @param addresses
//     * @return
//     */
//    public static long getOrCreateThreadId(Context context, Set<String> addresses) {
//        long threadID = -1;
//        Uri.Builder uriBuilder = Uri.parse("content://mms-sms/threadID").buildUpon();
//        for (String address : addresses) {
//            uriBuilder.appendQueryParameter("recipient", address);
//        }
//        Uri uri = uriBuilder.build();
//        Cursor cursor = context.getContentResolver().query(uri, new String[]{BaseColumns._ID}, null, null, null);
//        if (cursor != null) {
//            if (cursor.moveToFirst()) {
//                threadID = cursor.getLong(0);
//            }
//            cursor.close();
//        }
//        return threadID;
//    }
//
//    /**
//     * 根据thread表中的地址对应id，获取真实地址
//     *
//     * @param context
//     * @param recipientIDs
//     * @return
//     */
//    public static final Vector<String> queryAddressByRecipietIDs(Context context, String recipientIDs) {
//        String[] recipientIDArr = recipientIDs.split(" ");
//        Vector<String> phoneNumberVec = new Vector<String>();
//        Cursor c = null;
//        for (int i = 0; i < recipientIDArr.length; i++) {
//            String phoneNumber = "";
//            String recipientId = recipientIDArr[i];
//            c = context.getContentResolver().query(Uri.parse("content://mms-sms/canonical-address/" + recipientId),
//                    null, null, null, null);
//            if (c != null) {
//                if (c.moveToFirst()) {
//                    phoneNumber = StringUtils.filterPhoneNum(c.getString(c.getColumnIndex("address")));
//                }
//                if (!phoneNumberVec.contains(phoneNumber)) {
//                    phoneNumberVec.add(phoneNumber);
//                }
//                c.close();
//            }
//        }
//        return phoneNumberVec;
//    }
//
//    /**
//     * 查询未读消息
//     *
//     * @param context
//     * @param type    0，查询短信未读，1查询彩信未读，2查询短信、彩信未读
//     * @param
//     * @return
//     * @throws
//     */
//    public static final int queryUnReadSMSMMSCount(Context context, int type) {
//        int unReadSMS = 0;
//        Cursor csr = null;
//        if (type == 0 || type == 2) {
//            csr = context.getContentResolver().query(Uri.parse("content://sms"), null, "type = 1 and read = 0", null,
//                    null);
//            if (csr != null) {
//                unReadSMS = csr.getCount();
//                csr.close();
//            }
//        }
//
//        int unReadMMS = 0;
//        if (type == 1 || type == 2) {
//            csr = context.getContentResolver().query(Uri.parse("content://mms/inbox"), null, "read = 0", null, null);
//            if (csr != null) {
//                unReadMMS = csr.getCount();
//                csr.close();
//            }
//        }
//
//        return unReadSMS + unReadMMS;
//    }
//}
